package com.sena.crawler.run;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.sena.crawler.util.ReadProperties;
import redis.clients.jedis.ShardedJedis;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;

public class RunInsertSenaLinkScanSlink {
    public static void main(String[] args) {
        insertSlinkUrlData();
    }

    public static void insertSlinkUrlData() {
//        JedisUtil.init(ReadProperties.getRedisUrlValue("url"));
//        ShardedJedis client = JedisUtil.getInstance();
//        Map<String, String> map = client.hgetAll("DIE_LINK");
//
//        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
//        String now = df.format(new Date());
//        String url = ReadProperties.getJDBCUrlValue("url");
//        String sql_user = ReadProperties.getJDBCUrlValue("username");
//        String sql_pwd = ReadProperties.getJDBCUrlValue("password");
//
//        int count =0;
//        List<String> addList  = new ArrayList<String>();
//        for (Map.Entry<String, String> entry : map.entrySet()) {
//            JSONObject urlVo = JSON.parseObject(entry.getValue());
//            JSONArray cntSlinks = JSONArray.parseArray(urlVo.getString("cntSlinks"));
//            String slinks = "";
//            if(cntSlinks!=null) {
//                for (int i = 0; i < cntSlinks.size(); i++) {
//                    slinks += cntSlinks.get(i) + "\n";
//                }
//            }
//            //System.out.println("slinks=="+slinks);
//            String tempurl ="";
//            if (urlVo.get("scanUrl") !=null  && urlVo.get("scanUrl").toString().indexOf("<")>0) {  //都有尖括号的过滤
//                int   pos = urlVo.get("scanUrl").toString().indexOf("<");
//                tempurl = urlVo.get("scanUrl").toString().substring(0, pos);
//                // System.out.println("tempurl===="+tempurl);
//            }else
//                tempurl  = urlVo.get("scanUrl").toString();
//            String insertSql = "insert into sena_link_scan_slink(res_id,scan_url,scan_time,site_content,wlinks) values(0,'"+tempurl.replaceAll("'", "")+"','"+now+"','"+slinks+"',"+urlVo.getString("cntSlink")+");";
//            //System.out.println(insertSql);
//            Connection conn = null;
//            Statement stmt = null;
//
//
//            addList.add(insertSql);
//            count++;
//            if (addList.size()>=2000 ||   count == map.entrySet().size()) { //每1000条插入一次
//                try
//                {
//                    Class.forName ("com.mysql.jdbc.Driver");
//                    conn = DriverManager.getConnection (url,sql_user,sql_pwd);
//                    stmt = conn.createStatement();
//                    conn.setAutoCommit(false);
//                    stmt = conn.createStatement();
//
//                    for (int i = 0; i < addList.size(); i++) {
//                        stmt.addBatch(addList.get(i).toString());
//                    }
//                    stmt.executeBatch();
//                    conn.commit();
//
//                    System.out.println ("================成功插入死链"+count+"条");
//                }
//                catch (Exception e){
//                    e.printStackTrace();
//                }
//                finally{
//                    addList.clear();
//                    if (conn != null){
//                        try {
//                            conn.close ();
//                            //System.out.println ("Database connection terminated");
//                        }
//                        catch (Exception e) {  }
//                    }
//                    if (stmt != null){
//                        try {
//                            stmt.close ();
//                            //System.out.println ("Database connection terminated");
//                        }
//                        catch (Exception e) {  }
//                    }
//                }
//
//            }
//        }
//


    }
}
